package m17_10;

import java.util.Arrays;

/**
 * @author liucong
 * @date 2021/2/8 - 20:20
 *
 * 数组中占比超过一半的元素称之为主要元素。给定一个整数数组，找到它的主要元素。若没有，返回-1。
 *
 * 示例 1：
 *
 * 输入：[1,2,5,9,5,9,5,5,5]
 * 输出：5
 *  
 *
 * 示例 2：
 *
 * 输入：[3,2]
 * 输出：-1
 *  
 *
 * 示例 3：
 *
 * 输入：[2,2,1,1,1,2,2]
 * 输出：2
 *  
 *
 * 说明：
 * 你有办法在时间复杂度为 O(N)，空间复杂度为 O(1) 内完成吗？
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/find-majority-element-lcci
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class L17_10 {

}

class Solution {
    public int majorityElement(int[] nums) {
        int len=nums.length;
        if(len==1)
            return nums[0];
        Arrays.sort(nums);
        int temp=nums[len/2];
        int count=0;
        for(int i=0;i<len;i++){
            if(nums[i]==temp)
                count++;
            if(count>len/2)
                return temp;
        }
        return -1;
    }
}